<?php

class openapi_api_function_v1_basicmaterial extends openapi_api_function_abstract implements openapi_api_function_interface{

    public function getList($params,&$code,&$sub_msg){
        $filter = array();

        if ($params['material_bn']) {
            $filter['material_bn'] = $params['material_bn'];
        }

        $page_no = intval($params['page_no']) > 0 ? intval($params['page_no']) : 1;
        $limit = (intval($params['page_size']) > 100 || intval($params['page_size']) <= 0) ? 40 : intval($params['page_size']);

        if($page_no == 1){
            $offset = 0;
        }else{
            $offset = ($page_no-1)*$limit;
        }

        $basic_material_data = kernel::single('openapi_data_original_basicmaterial')->getList($filter,$offset,$limit);
        return $basic_material_data;
    }

    public function add($params,&$code,&$sub_msg){
        //格式化参数是促销类还是普通、赠品类
        if(isset($params['bind_info'])){
            if($params['material_type'] == 2){
                $tmp_basicMInfos = explode('|',$params['bind_info']);
                foreach($tmp_basicMInfos as $tmp_basicMInfo){
                    $tmp_bnInfo = explode(':',$tmp_basicMInfo);
                    $params['at'][$tmp_bnInfo[0]] = $tmp_bnInfo[1];
                }
            }
        }

        $params['type'] = ($params['material_type'] == 2) ? 2 : 1;
        
        $rs = kernel::single('openapi_data_original_basicmaterial')->add($params,$code,$sub_msg);
        return $rs;
    }

    public function edit($params,&$code,&$sub_msg){
        //格式化参数是促销类还是普通、赠品类
        if(isset($params['bind_info'])){
            if($params['material_type'] == 2){
                $tmp_basicMInfos = explode('|',$params['bind_info']);
                foreach($tmp_basicMInfos as $tmp_basicMInfo){
                    $tmp_bnInfo = explode(':',$tmp_basicMInfo);
                    $params['at'][$tmp_bnInfo[0]] = $tmp_bnInfo[1];
                }
            }
        }

        $params['type'] = ($params['material_type'] == 2) ? 2 : 1;
        
        $rs = kernel::single('openapi_data_original_basicmaterial')->edit($params,$code,$sub_msg);
        return $rs;
    }
}